import {defineStore} from 'pinia'
import {getSidebarMenu} from "@/api/tab/tab.ts";

// 存储应用程序的位置
const useNavStore = defineStore('nav', {
    state: () => ({
        iconSize: 60,// 图标大小
        iconBorderRadius: 10,    // 图标圆角
        fontSize: 13, // 字体大小
        desWidth: 900, // 展示区域宽度
        desHeight: `calc(100vh - 350px)`, // 展示区域高度
        space: 20, // 两图标之间的距离
        navAllList: [], // 所有的图标数据
        activeNavId: "", // 当前激活的 id
        activeNav: {}, // 当前激活的分类
        gridGapRow: 25, // 网线之间的间距
        gridGapCul: 25, // 网线之间的间距
        // 当前显示的图标数据
        currentNavList: {}, // 当前显示的图标数据
        // 图标设置
        tabIconSetting: {
            desWidth: 900,
            size: 64,
            iconSize: 64,
        },
    }),
    getters: {},
    actions: {
        /*
        * 获取所有的图标
        * */
        getSidebarAll() {
            return new Promise((resolve, reject) => {
                getSidebarMenu().then((req) => {
                    /*所有的菜单信息*/
                    this.navAllList = req.data
                    this.activeNav = this.navAllList[0]
                    this.activeNavId = this.navAllList[0].tabId
                    resolve(true)
                }).catch(error => {
                    reject(error)
                })
            })
        },

        /**
         * 向上移动
         */
        sidebarPrev() {
            // 1. 先看档期激活 id 的索引是多少
            let index = this.navAllList.findIndex((item) => {
                return item.tabId === this.activeNavId
            })
            console.log('index', index)
            // 2. 根据aging索引找其前面的哪一个
            index = index == 0 ? this.navAllList.length - 1 : index - 1
            this.activeNavId = this.navAllList[index].tabId
        },
        /**
         * 向下移动
         */
        sidebarNext() {
            // 1. 先看档期激活 id 的索引是多少
            let index = this.navAllList.findIndex((item) => {
                return item.tabId === this.activeNavId
            })
            index = index == this.navAllList.length - 1 ? 0 : index + 1
            this.activeNavId = this.navAllList[index].tabId
        },
    },
})


// 需要缓存的数据
// 1. 当前正在使用的搜索引擎 key


export default useNavStore

// getter 中的方法
/*
* 1
*  getTabIconSetting () {
      return this.tabIconSetting
   },
   // 2
   getTabIconSetting: (state) => {
            return state.tabIconSetting
   },
*
*
*
* */
